"""
3、用列表实现：有8个数，从大到小排序。
(文件名：py0110.py)。
"""
# 自定义排序规则
import functools

list1 = [3, 6, 7, 1, 4, 8, 3, 0]


def my_cmp(x, y):
    """
    自写比较标准试试，顺便看看Python中是否有类似C++ 算法库的sort()函数
    不写函数描述就一直闪南向，看着不舒服啊，老师你可以不看这一段的浪费你时间
    """
    if x > y:
        return 1
    elif x < y:
        return -1
    return 0


print("排序前：")
print(list1)
print("排序后：")
print(sorted(list1, key=functools.cmp_to_key(my_cmp)))

# 冒泡排序
list2 = [3, 11, 7, 1, 0, 8, 2, 9]
print("排序前：")
print(list2)
n = len(list2)  # len可以获取list长度
i, j = 0, 0
for i in range(0, n - 1):
    for j in range(0, n - 1 - i):
        if list2[j] < list2[j + 1]:
            list2[j], list2[j + 1] = list2[j + 1], list2[j]
print("排序后：")
print(list2)
